const path = require('path');

const express = require('express');
const nunjucks = require('nunjucks');
const morgan = require('morgan');

const teacherRouter = require( './routes/teacher' );
const studentRouter = require( './routes/student' );
const courseRouter = require( './routes/course' );

const port = 8080 ;
const app = express();
const assets = path.join( __dirname , 'public' );

// 配置模板文件的后缀
app.set( 'view engine' , 'njk' );
// 配置模板文件所在的根目录
app.set( 'views' , path.resolve( __dirname , 'views') );

// 配置模板引擎 ( 向 express 应用 app 注入模板引擎 )
nunjucks.configure( 'views' , {autoescape: true, express: app } );

// 配置处理日志的中间件
app.use( morgan('dev') );

// 配置处理静态资源(HTML、CSS、image、video、audio、JavaScript)的中间件
app.use( express.static( assets ) );

// 配置处理请求中所包含的 application/json 格式数据的中间件
app.use( express.json() );
// 配置处理请求中所包含的 application/x-www-form-urencode 格式数据的中间件
app.use( express.urlencoded({ extended: false }) );

app.use( '/teacher' , teacherRouter );
app.use( '/student' , studentRouter );
app.use( '/course' , courseRouter );

app.listen( port );
